

function drawLines(leftPoints, rightPoints, draw) {
  // 清空画布
  draw.clear();
  // 双循环
  leftPoints.forEach(leftPoint => {
    rightPoints.forEach(rightPoint => {
      drawLine(leftPoint, rightPoint, draw)
    })
  })
}

/**
 * @description 画线
 * @param {[]} leftPoint 
 * @param {[]} rightPoint 
 * @param {*} draw 
 */
function drawLine(leftPoint, rightPoint, draw) {
  // 起点
  let P0 = { x: leftPoint[0], y: leftPoint[1] }
  // 终点
  let P2 = { x: rightPoint[0], y: rightPoint[1] }

  // 二次贝塞尔曲线的控制点

  // 方案1
  // var angle = Math.atan2(P2.y - P0.y, P2.x - P0.x);  // 计算起始点到终点的角度
  // var offset = 50;  // 控制点的偏移量（决定曲线弯曲的程度）

  // var P1 = {
  //   x: P0.x + offset * Math.sin(angle),  // 控制点偏离起始点的 X 方向
  //   y: P0.y - offset * Math.cos(angle)   // 控制点偏离起始点的 Y 方向
  // };

  // 方案2
  var P1 = {
    x: (P0.x + P2.x) / 2,
    y: (P0.y + P2.y) / 2 - 50  // 通过调整偏移量来设置控制点的高度
  };
  draw.path(`M${P0.x},${P0.y} Q${P1.x},${P1.y} ${P2.x},${P2.y}`).fill('none').stroke({ width: 2, color: 'black' });
}

export default drawLines